void main() {
  //调用主构造函数
  Person man = new Person('小帅', 20, '男');
  man.sayHello();

  //调用命名构造函数
  Person woman = Person.init('小美', 20);
  woman.sayHello();
}

class Person {
  //属性
  String? name;
  int? age;
  String? gender;

  //同名(主)构造函数

  // Person(String name, int age, String gender) {
  //   print('主构造函数');
  //   this.name = name;
  //   this.age = age;
  //   this.gender = gender;
  // }

  // 主构造函数简写
  Person(this.name, this.age, this.gender);

  //命名(次)构造函数 - 可以有多个

  // Person.init(String name, int age) {
  //   print('这是次构造函数');
  //   this.name = name;
  //   this.age = age;
  //   this.gender = '女';
  // }

  // 命名构造函数简写1
  Person.init(this.name, this.age) {
    this.gender = '女';
  }
  // 命名构造函数简写2
  // Person.init(this.name, this.age) : this.gender = '女';

  void sayHello() {
    print('我是$name,今年$age,性别$gender');
  }
}
